package com.cinc.mdm.modules.materialClass.entity;

import java.io.Serializable;
import java.util.Date;
import java.math.BigDecimal;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.springframework.format.annotation.DateTimeFormat;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.jeecg.common.aspect.annotation.Dict;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.io.UnsupportedEncodingException;

/**
 * @Description: 物料分类
 * @Author: jeecg-boot
 * @Date:   2021-09-16
 * @Version: V1.0
 */
@Data
@TableName("mdm_material_class")
@ApiModel(value="mdm_material_class对象", description="物料分类")
public class MdmMaterialClass implements Serializable {
    private static final long serialVersionUID = 1L;

	/**主键*/
	@TableId(type = IdType.ASSIGN_ID)
    @ApiModelProperty(value = "主键")
    private String id;
	/**分类码*/
	@Excel(name = "分类码", width = 15)
    @ApiModelProperty(value = "分类码")
    private String materialClassCode;
	/**分类名称*/
	@Excel(name = "分类名称", width = 15)
    @ApiModelProperty(value = "分类名称")
    private String materialClassName;
	/**父分类ID*/
	@Excel(name = "父分类ID", width = 15)
    @ApiModelProperty(value = "父分类ID")
    private String pid;
    /**根节点ID*/
    @Excel(name = "根节点ID", width = 15)
    @ApiModelProperty(value = "根节点ID")
    private String rootid;
	/**物料类型ID*/
	@Excel(name = "物料类型ID", width = 15, dictTable = "mdm_material_type", dicText = "material_type_name", dicCode = "id")
	@Dict(dictTable = "mdm_material_type", dicText = "material_type_name", dicCode = "id")
    @ApiModelProperty(value = "物料类型ID")
    private String materialTypeId;
	/**缺省库房ID*/
	@Excel(name = "缺省库房ID", width = 15)
    @ApiModelProperty(value = "缺省库房ID")
    private String stockId;
	/**说明*/
	@Excel(name = "说明", width = 15)
    @ApiModelProperty(value = "说明")
    private String remark;
	/**基本单位*/
    @Excel(name = "基本单位", width = 15, dictTable = "mdm_unit", dicText = "unit_name", dicCode = "unit_code")
    @Dict(dictTable = "mdm_unit", dicText = "unit_name", dicCode = "unit_code")
    @ApiModelProperty(value = "基本单位")
    private String unitCode;
	/**检验标志*/
	@Excel(name = "检验标志", width = 15)
    @ApiModelProperty(value = "检验标志")
    private String checkFlag;
	/**超计划采购百分比*/
	@Excel(name = "超计划采购百分比", width = 15)
    @ApiModelProperty(value = "超计划采购百分比")
    private BigDecimal buyPecentLimit;
    /**超计划采购数量*/
    @Excel(name = "超计划采购数量", width = 15)
    @ApiModelProperty(value = "超计划采购数量")
    private BigDecimal buyQtyLimit;
    /**超量入库百分比*/
    @Excel(name = "超量入库百分比", width = 15)
    @ApiModelProperty(value = "超量入库百分比")
    private BigDecimal inPecentLimit;
    /**超量入库数量*/
    @Excel(name = "超量入库数量", width = 15)
    @ApiModelProperty(value = "超量入库数量")
    private BigDecimal inQtyLimit;
	/**到货允许最大数*/
	@Excel(name = "到货允许最大数", width = 15)
    @ApiModelProperty(value = "到货允许最大数")
    private BigDecimal arrivalQtyLimit;
	/**分类打印名称*/
	@Excel(name = "分类打印名称", width = 15)
    @ApiModelProperty(value = "分类打印名称")
    private String printName;
	/**采购组织*/
	@Excel(name = "采购组织", width = 15, dictTable = "sys_depart", dicText = "depart_name", dicCode = "id")
	@Dict(dictTable = "sys_depart", dicText = "depart_name", dicCode = "id")
    @ApiModelProperty(value = "采购组织")
    private String purDeptId;
	/**采购员*/
	@Excel(name = "采购员", width = 15, dictTable = "sys_user", dicText = "realname", dicCode = "username")
	@Dict(dictTable = "sys_user", dicText = "realname", dicCode = "username")
    @ApiModelProperty(value = "采购员")
    private String buyerId;
	/**出入库策略*/
	@Excel(name = "出入库策略", width = 15)
    @ApiModelProperty(value = "出入库策略")
    private String inoutStrategyCode;
	/**批次标志（1是 0否）*/
	@Excel(name = "批次标志（1是 0否）", width = 15)
    @ApiModelProperty(value = "批次标志（1是 0否）")
    private String batchFlag;
	/**生成送货通知单（1是 0否）*/
	@Excel(name = "生成送货通知单（1是 0否）", width = 15)
    @ApiModelProperty(value = "生成送货通知单（1是 0否）")
    private String deliveryOrderFlag;
	/**自动接收标志（1是 0否）*/
	@Excel(name = "自动接收标志（1是 0否）", width = 15)
    @ApiModelProperty(value = "自动接收标志（1是 0否）")
    private String autoReceiveFlag;
	/**创建人*/
    @ApiModelProperty(value = "创建人")
    private String createBy;
	/**创建时间*/
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern="yyyy-MM-dd")
    @ApiModelProperty(value = "创建时间")
    private Date createTime;
	/**修改人*/
    @ApiModelProperty(value = "修改人")
    private String updateBy;
	/**修改时间*/
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern="yyyy-MM-dd")
    @ApiModelProperty(value = "修改时间")
    private Date updateTime;
	/**启用标志（1是 0否）*/
	@Excel(name = "启用标志（1是 0否）", width = 15)
    @ApiModelProperty(value = "启用标志（1是 0否）")
    private String enableFlag;
	/**租户ID*/
	@Excel(name = "租户ID", width = 15)
    @ApiModelProperty(value = "租户ID")
    private Integer tenantId;
	/**所属部门*/
    @ApiModelProperty(value = "所属部门")
    private String sysOrgCode;
	/**是否有子节点*/
	@Excel(name = "是否有子节点", width = 15, dicCode = "yn")
	@Dict(dicCode = "yn")
    @ApiModelProperty(value = "是否有子节点")
    private String hasChild;
}
